나는 한동안 JSON을 엉망으로 만들고 텍스트로 밀어 내고 (내가 아는) 누구에게도 해를 끼치 지 않았지만 제대로 일을 시작하고 싶습니다. JSON 콘텐츠 유형에 대한 많은 "표준"을 보았습니다. 응용 프로그램 / json 애플리케이션 / x-javascript 텍스트 / 자바 스크립트 text / x-javascript 텍스트 / x-json 그러나 어느 것이 옳거나 가장 좋습니까? 보안 및 브라우저 지원 문제가 서로 다르다고 생각합니다. JSON이 REST API에서 반환되는 경우 어떤 MIME 유형입니까?라는 유사한 질문이 있다는 것을 알고 있지만 약간 더 구체적인 답변을 원합니다.
2020-12-07 21:17:12
1 2 다음 JSON 텍스트의 경우 : 응용 프로그램 / json JSON 텍스트의 MIME 미디어 유형은 application / json입니다. 기본 인코딩은 UTF-8입니다. (출처 : RFC 4627). 콜백이있는 JSONP (실행 가능한 JavaScript)의 경우 : 애플리케이션 / 자바 스크립트 관련 댓글에 언급 된 블로그 게시물은 다음과 같습니다. JSON에 text / html을 사용하면 안되는 이유 Internet Explorer에서 때때로 application / json에 문제가 있음 Mimetypes의 전체 목록과 사용 용도 아래 @gnrfan의 답변에서 IANA의 공식 MIME 유형 목록 | IANA는 JSON 용 공식 MIME 유형을 application / json으로 등록했습니다. 왜 text / json이 아닌지 물었을 때 Crockford는 JSON이 실제로 JavaScript도 텍스트가 아니며 IANA가 text / *보다 application / *을 나눌 가능성이 더 높다고 말한 것 같습니다. 추가 리소스 : 미디어 유형 의견 요청 4627 bluesmoon : JSON에는 유형이 있습니다. | JSON의 경우 : 콘텐츠 유형 : application / json JSON-P의 경우 : 콘텐츠 유형 : application / javascript | 물론 JSON의 올바른 MIME 미디어 유형은 application / json이지만 애플리케이션에 어떤 유형의 데이터가 필요한지 파악해야합니다. 예를 들어 Ext GWT를 사용하고 서버 응답은 text / html로 이동해야하지만 JSON 데이터를 포함합니다. 클라이언트 측, Ext GWT 양식 리스너 uploadForm.getForm (). addListener (new FormListenerAdapter () { @우세하다 public void onActionFailed (Form form, int httpStatus, String responseText) { MessageBox.alert ( "오류"); } @우세하다 public void onActionComplete (Form form, int httpStatus, String responseText) { MessageBox.alert ( "성공"); } }); 응용 프로그램 / json 응답 유형을 사용하는 경우 브라우저에서 파일을 저장할 것을 제안합니다. Spring MVC를 사용하는 서버 측 소스 코드 스 니펫 새로운 AbstractUrlBasedView () 반환 { @SuppressWarnings ( "선택 취소") @우세하다 보호 된 void renderMergedOutputModel (Map model, HttpServletRequest request, HttpServletResponse 응답) 예외 발생 { response.setContentType ( "text / html"); response.getWriter (). write (json); } }; | JSON : 응답은 URL에 전달 된 쿼리 매개 변수에 따라 동적으로 생성 된 데이터입니다. 예: { "이름": "Foo", "Id": 1234, "순위": 7} 콘텐츠 유형 : application / json JSON-P : 패딩이있는 JSON. 응답은 JSON 데이터이며, 함수 호출이 래핑됩니다. 예: functionCall ({ "Name": "Foo", "Id": 1234, "Rank": 7}); 콘텐츠 유형 : application / javascript | Ubuntu 또는 Debian을 사용 중이고 Apache를 통해 .json 파일을 제공하는 경우 올바른 콘텐츠 유형으로 파일을 제공 할 수 있습니다. Firefox 확장 JSONView를 사용하고 싶기 때문에 주로이 작업을 수행하고 있습니다. Apache 모듈 mod_mime는이를 쉽게 수행하는 데 도움이됩니다. 그러나 Ubuntu에서는 /etc/mime.types 파일을 편집하고 다음 줄을 추가해야합니다. 응용 프로그램 / json json 그런 다음 Apache를 다시 시작합니다. sudo 서비스 apache2 다시 시작 | 클라이언트 측에서 ASP.NET 웹 서비스를 호출하는 경우 작동하려면 application / json을 사용해야합니다. 저는 이것이 jQuery와 Ext 프레임 워크에서 동일하다고 생각합니다. | JSON에 적합한 콘텐츠 유형은 application / json입니다. | application / json이 JSON 응답에 가장 적합한 MIME 유형이라는 것은 의심의 여지가 없습니다. 그러나 일부 압축 문제로 인해 application / x-javascript를 사용해야하는 경험이 있습니다. 내 호스팅 환경은 GoDaddy와 공유 호스팅입니다. 서버 구성을 변경할 수 없습니다. 응답을 압축하기 위해 web.config 파일에 다음 코드를 추가했습니다.dynamicTypes> <정적 유형> staticTypes> http 압축> 이를 사용하여 .aspx 페이지는 g-zip으로 압축되었지만 JSON 응답은 압축되지 않았습니다. 나는 추가했다 정적 및 동적 유형 섹션에서. 그러나 이것은 JSON 응답을 전혀 압축하지 않습니다. 그 후 새로 추가 된 유형을 제거하고 정적 및 동적 유형 섹션 모두에서 응답 유형을 변경했습니다. .ashx (비동기 처리기) 애플리케이션 / x-javascript 이제 JSON 응답이 g-zip으로 압축되었음을 알았습니다. 그래서 개인적으로 애플리케이션 / x-javascript 공유 호스팅 환경에서 JSON 응답을 압축하려는 경우에만. 공유 호스팅에서는 IIS를 변경할 수 없습니다.구성. | MIME 유형으로 application / json을 사용하는 경우에만 다음이 있습니다 (2011 년 11 월 현재 Chrome 최신 버전, Firefox with Firebug). 서버에서 JSON이로드 될 때 Chrome에서 더 이상 경고가 표시되지 않습니다. Firebug는 응답에 JSON 데이터를 보여주는 탭을 추가합니다. 포맷. MIME 유형이 다른 경우 다음과 같이 표시됩니다. '응답 내용'. | 콘텐츠 유형 application / json에서 모든 것이 작동하는 것은 아닙니다. Ext JS 양식 제출을 사용하여 파일을 업로드하는 경우 브라우저에서 서버 응답을 파싱하여